import { ApiProperty } from '@nestjs/swagger';
import { Transform, Type } from 'class-transformer';
import { IsArray, IsNumber } from 'class-validator';

export class AssignMenuDto {
  @ApiProperty({ description: '菜单ID列表', type: [Number] })
  @IsArray()
  @Type(() => Number) // 处理简单的字符串到数字的转换
  @Transform(({ value }) => {
    // 处理更复杂的情况，确保所有元素都是数字
    if (Array.isArray(value)) {
      return value.map(item => {
        const num = Number(item);
        return isNaN(num) ? 0 : num; // 转换失败时提供默认值
      });
    }
    return value;
  })
  @IsNumber({}, { each: true })
  menuIds: number[];
}